home *** CD-ROM | disk | FTP | other *** search
- /* $Id: I3DEXSHA.H 1.2 1995/06/30 18:51:58 michel Exp $ */
- /*****************************************************************************\
- * *
- * I3DExSha.h - I3DExShader definition *
- * *
- * Copyright (c) 1995, Ray Dream, Inc. All rights reserved. *
- * *
- \*****************************************************************************/
-
- #ifndef __I3DEXSHA__
- #define __I3DEXSHA__
-
- #ifndef __I3DEX__
- #include "I3DEx.h"
- #endif
-
-
- enum {
- kUsesGetValue = 1,
- kUsesGetColor = 2,
- kUsesGetVector = 4,
- kUsesDoShade = 16
- };
-
- //****** Globally Unique Ids *************************************************
-
- DEFINE_GUID(IID_I3DExShader, 0x06DD2161L, 0x2ED7, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
-
- /*****************************************************************************\
- * I3DExShader *
- * *
- * Shaders *
- * *
- \*****************************************************************************/
-
- #undef INTERFACE
- #define INTERFACE I3DExShader
-
- DECLARE_INTERFACE_(I3DExShader, I3DExDataExchanger) {
- // IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
-
- // I3DExtension methods
- STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
- STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
-
- // I3DExDataExchanger methods
- STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
- STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
- STDMETHOD(ExtensionDataChanged) (THIS) PURE;
- STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
- STDMETHOD_(short, GetResID) (THIS) PURE;
-
- // I3DExShader methods
- STDMETHOD_(BOOLEAN, IsEqualTo) (THIS_ I3DExShader* aShader) PURE;
- STDMETHOD_(BOOLEAN, DependsOnAppliedExtent) (THIS) PURE;
- STDMETHOD(GetShadingFlags) (THIS_ ShadingFlags* theFlags) PURE;
- STDMETHOD_(ULONG, GetPreferredOutput) (THIS) PURE; // Tell which one of the following calls is implemented. See kUseGetValue... constants above
- //-- Shading calls. Implement only one of those. Return E_NOTIMPL for the others
- STDMETHOD(DoShade) (THIS_ ShadingInOut* inOut, ShadingElem* shadingElem) PURE;
- STDMETHOD(GetValue) (THIS_ NUM3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
- STDMETHOD(GetColor) (THIS_ COLOR3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
- STDMETHOD(GetVector) (THIS_ VECTOR3D* result, ShadingIn* in, ShadingElem* theShadingElem) PURE;
- };
-
-
- #endif
-